// pages/payment/N1/N1.js
// 支付页-拿走吃-逻辑层

import util from '../../../utils/util'

Page({


  /**
   * 页面的初始数据
   */
  data:
  {



    //++++++++++++ 用户购物车 ++++++++++++

    user_shopping_cart:[],//购物车数据
    money:0,//购物车总金额

    //++++++++++++++++++ END ++++++++++++


    //++++++++++++ 餐桌号/备注 ++++++++++++

    remarks: '',//备注
    focus_1:false,//备注焦点

    //++++++++++++++++++ END ++++++++++++++



    //++++++++++++ 订单信息 ++++++++++++

    dateYMD: '',//下单时间
    orderCode: '',//订单编号

    //++++++++++++++++++ END ++++++++++++++


  },




  //++++++++++++ 订单信息 ++++++++++++

  orderCode: function ()
  {

    // 存放订单号
    let orderCode='';
    
    // 3位随机数(加在时间戳后面)
    for (var i = 0; i < 3; i++)
    {
      orderCode += Math.floor(Math.random() * 10);
    }

    // 时间戳(用来生成订单号)
    orderCode = 'N' + new Date().getTime() + orderCode;

    // 更新
    this.setData({
      orderCode:orderCode
    })
  },

  //+++++++++++++++ END ++++++++++++++







  //++++++++++++ 餐桌号/备注 value值监听 ++++++++++++

  /**
   * 备注值监听
   * [setData]
   */
  remarks_input: function(e)
  {

    // 获取当前值
    let value = e.detail;
    
    // 及时更新
    this.setData({
      remarks:value
    })

  },

  //++++++++++++++++++ END ++++++++++++++




  //++++++++++++ 点击单元格时 ++++++++++++

  /**
   * 获取焦点(点击单元格时触发)
   * 餐桌号 / 备注
   * [优化用户体验]
   */
  getFocus: function()
  {
    this.setData({
      focus_1: true
    })
  },

  /**
   * 点击复制到剪贴板
   * 订单编号
   * [优化用户体验]
   */
  copyCode: function()
  {
    wx.setClipboardData({
      data: this.data.orderCode
    })
  },

  //++++++++++++++++++ END ++++++++++






  //++++++++++++ 支付功能 ++++++++++++

  /**
   * 1. 首先判断购物车是否为空(为空则异常)
   * 2. 再判断餐桌号是否为空
   * 3. 请求后端支付接口完成付款
   */
  payment: function()
  {

    /**
     * 字段校验
     * [餐桌号/购物车]
     */
    
     // 获取餐桌号/购物车值
     var user_shopping_cart = this.data.user_shopping_cart
     
     // 首先判断购物车是否为空(为空抛出异常)
     if(user_shopping_cart.length != 0)
     {

        // 调用支付接口
        console.log('请求接口:立即支付')

        //跳转支付成功页
        wx.reLaunch({
          url: '/pages/payment/N1/success/success',
        })

        //跳转支付失败页
        wx.reLaunch({
          url: '/pages/payment/D0/fail/fail',
        })

     }



     // 抛出异常(非商品参数带入进页面)
     else
     {

      // 反馈提示
      wx.showModal({
        title: 'Error: 异常操作(x0)',
        content: '数据异常(已关闭订单)',
        showCancel: false,
        success(res)
        {
          if (res.confirm)
          {
            // 跳转页面
            wx.reLaunch({
              url: '/pages/index/homePage/homePage'
            })
          }
        }
      });
     }
  },
  
  //++++++++++++++++++ END ++++++++++++++





  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options)
  {

    /**
     * 获取购物车数据
     * [setData]
     */
    this.setData({

      //购物车数据
      user_shopping_cart: JSON.parse(decodeURIComponent(options.cat)),
      //购物车总金额
      money: options.moneyNum,
      // 订单创建时间
      dateYMD:util.dateYMD(new Date())

    })

    /**
     * 生成订单号
     */
    this.orderCode();

  },



  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function()
  {

  },



  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function()
  {

  },



  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function()
  {

  },



  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function()
  {

  },



  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function()
  {
    // 停止刷新显示
    wx.stopPullDownRefresh()
  },



  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function()
  {

  },



  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function()
  {

  }

})